1. Field of Invention
The present invention pertains to the field of software control of hardware. More particularly, this invention relates to a multi-layer software architecture for hardware control.
2. Art Background
A wide variety of systems include hardware which is controlled by software. Software that controls hardware is commonly referred to as firmware. For example, a wide variety of instruments including those used in test and measurement applications commonly include circuits for generating test signals and/or circuits for obtaining measurements along with firmware for controlling the circuits.
A circuit in such a system typically includes one or more control points that enable software to control a circuit by writing values to the control points of the circuit. The control points may be implemented as registers and/or digital-to-analog converters, etc.
It is common to make hardware changes to a system when performing support or upgrade operations on the system. Hardware changes to a system may involve modification to its circuits, replacement of its circuits, and/or the addition of circuits. Such hardware changes typically require modifications to the firmware that controls the circuits.
Prior firmware systems may grow quite large and complex as the number and complexity of circuits being controlled increases. In addition, the firmware code that directly accesses the control points of circuits is usually scattered haphazardly throughout numerous portions of a firmware system. These factors typically complicate the task of performing firmware modifications. For example, it is common to undertake a search through large amounts of code to find references to the control points that require modification. Unfortunately, such methods of performing firmware modification are usually time consuming and can greatly increase the time and cost of upgrading a system and may introduce faults into the firmware.